gusucode.com > 先进 PID 控制及其 MATLAB 仿真 (程序) > 先进 PID 控制及其 MATLAB 仿真 (程序)\CHAPTER4\chap4_7f1.m

    %chap4_7f1.m
function [u]=chap4_7f1(u1,u2,u3)
global s
persistent errori error_1

ts=0.001;
if u3==0
   errori=0;
   error_1=0;
end   

s=3             %Selecting Signal Type
if s==1         %Step Signal
   kp=0.4;
   ki=0.0;
   kd=0.28;
elseif s==2     %Sine Signal
   kp=40;
   ki=0.0;
   kd=0.28;
elseif s==3     %Square Wave Signal
   kp=0;
   ki=0.0;
   kd=0.28;
end
error=u2;
errord=(error-error_1)/ts;
errori=errori+error*ts;

u=kp*error+kd*errord+ki*errori;
error_1=error;